package cloud.lysky.java.on.jvm;
// 半初始化状态演示
public class HalfInitDemo {
    public static void main(String[] args) {
        System.out.println("实际支付:" + PC.pc.realPay); // 0.0
        /**
         * 原因：在Java中，类的静态变量和静态块是按声明的顺序进行初始化的。
         * 在代码中，第一个静态变量是 pc，它是在PC.price 被初始化之前就被创建的。
         * 所以，当 new PC(0.8) 被调用时，PC.price 还没有被初始化，它的值是默认的 0.0。
         * 因此， realPay = price * discount;的结果 realPay 为 0.0。
         */
    }
}

class PC {
    static PC pc = new PC(0.8);
    static double price = 5000;
    double realPay;

    public PC(double discount) {
        System.out.println("这台PC售价: " + price);
        System.out.println("当前折扣: " + discount);
        realPay = price * discount;
    }
}
